package model.dao;

import java.sql.SQLException;
import java.util.List;

import com.ibatis.sqlmap.client.SqlMapClient;

import model.domain.UserAccessBean;
import model.domain.UserDefaultBean;
import model.util.DBUtil;

public class UserAccessDao {
	private static SqlMapClient sqlMapper = DBUtil.getParser();
//회원등록시 생성되는 테이블
	public static void createUserTable(String userId){
		try{
			sqlMapper.update("userAccess.createUserTable",userId);
		}catch(SQLException e){
			e.printStackTrace();
		}
	}
//클릭된 서비스 내림차순으로 뽑기
	public static List<UserAccessBean> selectRankAboutTheUser(String userId) throws Exception{
		try{
			return (List<UserAccessBean>)sqlMapper.queryForList("userAccess.selectRankAboutTheUser",userId);
		}catch(SQLException e){
			e.printStackTrace();
			throw new Exception("selectRankAboutTheUser error");
		}
	}
//클릭된 serviceId만 list 얻기
	public static List<String> selectAllServiceId(String userId) throws Exception{
		try{
			return (List<String>)sqlMapper.queryForList("userAccess.selectAllServiceId",userId);
		}catch(SQLException e){
			e.printStackTrace();
			throw new Exception("selectAllServiceId error");
		}
	}
//클릭카운트 업데이트
	public static void updateUserTable(UserAccessBean bean) {
		try{
			sqlMapper.update("userAccess.updateUserTable",bean);
		}catch(SQLException e){
			e.printStackTrace();
		}
	}
//클릭가운트 인설트
	public static void insertUserTable(UserAccessBean bean) {
		try{
			sqlMapper.insert("userAccess.insertUserTable",bean);
		}catch(SQLException e){
			e.printStackTrace();
		}
	}
//List<UserDefaultBean>의 반환형 이지만 이것은 단지 UserDefaultBean의 생성자가 필요해서 일뿐  XMLBuilder에서 사용
	public static List<UserDefaultBean> selectJoinAccessAndDefault(String userId) throws Exception{
		try{
			return (List<UserDefaultBean>)sqlMapper.queryForList("userAccess.selectJoinAccessAndDefault",userId);
		}catch(SQLException e){
			e.printStackTrace();
			throw new Exception("selectJoinAccessAndDefault error");
		}
	}

}
